pythonssh连接服务器

2024-09-28 15:42:14 17 Admin
品牌网站建设

 

在Python中,我们可以使用Paramiko库来实现通过SSH连接到远程服务器。Paramiko是一个Python库,可以实现SSHv2协议,同时也支持同基于密码和公钥的身份验证。以下是通过Paramiko库来连接远程服务器的示例代码:

 

1. 首先,我们需要安装Paramiko库。可以使用以下命令来安装Paramiko:

 

```python

pip install paramiko

```

 

2. 导入Paramiko库:

 

```python

import paramiko

```

 

3. 创建SSHClient对象,并进行连接:

 

```python

ssh = paramiko.SSHClient()

ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy()) # 添加远程服务器的主机key到本地的known_hosts文件中

ssh.connect(hostname='服务器IP地址'

port=22

username='用户名'

password='密码')

```

 

在上面的代码中,我们使用SSHClient对象进行连接,使用`set_missing_host_key_policy()`方法来添加远程服务器的主机key到本地的known_hosts文件中,以免在连接时出现`UnknownHostException`异常。然后,使用`connect()`方法来连接远程服务器,需要提供远程服务器的IP地址、端口、用户名和密码。

 

4. 执行命令并获取输出:

 

```python

stdin

stdout

stderr = ssh.exec_command('要执行的命令')

output = stdout.read()

```

 

在上面的代码中,我们使用`exec_command()`方法执行要在远程服务器上执行的命令,并通过`stdout.read()`方法获取命令的输出结果。

 

5. 关闭连接:

 

```python

ssh.close()

```

 

在完成所有操作后,我们需要使用`close()`方法关闭SSH连接。

 

下面是一个完整的示例代码:

 

```python

import paramiko

 

def ssh_connect(hostname

port

username

password

command):

ssh = paramiko.SSHClient()

ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())

ssh.connect(hostname=hostname

port=port

username=username

password=password)

stdin

stdout

stderr = ssh.exec_command(command)

output = stdout.read()

ssh.close()

return output

 

if __name__ == "__main__":

hostname = '服务器IP地址'

port = 22

username = '用户名'

password = '密码'

command = '要执行的命令'

output = ssh_connect(hostname

port

username

password

command)

print(output.decode('utf-8'))

```

 

注意:实际使用时,请将`服务器IP地址`、`端口`、`用户名`、`密码`和`要执行的命令`替换为实际的值。

 

这是一个基本的示例,可以根据实际情况进行修改和扩展。

Copyright © 悉地网 2018-2024.All right reserved.Powered by XIDICMS 备案号:苏ICP备18070416号-1